home *** CD-ROM | disk | FTP | other *** search
/ Aminet 3 / Aminet 3 - July 1994.iso / Aminet / dev / obero / Interfaces3_4.lha / Interfaces / KeyMap.mod < prev    next >
Text File  |  1994-03-05  |  2KB  |  68 lines

  1. (*
  2. (*
  3. **  Amiga Oberon Interface Module:
  4. **  $VER: KeyMap.mod 40.15 (28.12.93) Oberon 3.0
  5. **
  6. **   © 1993 by Fridtjof Siebert
  7. *)
  8. *)
  9.  
  10. MODULE KeyMap;  (* $Implementation- *)
  11.  
  12. IMPORT e  * := Exec,
  13.        ie * := InputEvent;
  14.  
  15. TYPE
  16.  
  17.   KeyMapPtr * = UNTRACED POINTER TO KeyMap;
  18.   KeyMap * = STRUCT
  19.     loKeyMapTypes * : UNTRACED POINTER TO ARRAY 64 OF SHORTSET;
  20.     loKeyMap      * : UNTRACED POINTER TO ARRAY 64 OF LONGINT;   (* or: ... OF ARRAY 4 OF CHAR; *)
  21.     loCapsable    * : UNTRACED POINTER TO ARRAY  8 OF SHORTSET;
  22.     loRepeatable  * : UNTRACED POINTER TO ARRAY  8 OF SHORTSET;
  23.     hiKeyMapTypes * : UNTRACED POINTER TO ARRAY 64 OF SHORTSET;
  24.     hiKeyMap      * : UNTRACED POINTER TO ARRAY 64 OF LONGINT;   (* or: ... OF ARRAY 4 OF CHAR; *)
  25.     hiCapsable    * : UNTRACED POINTER TO ARRAY  8 OF SHORTSET;
  26.     hiRepeatable  * : UNTRACED POINTER TO ARRAY  8 OF SHORTSET;
  27.   END;
  28.  
  29.   KeyMapNodePtr * = UNTRACED POINTER TO KeyMapNode;
  30.   KeyMapNode * = STRUCT (node * : e.Node) (* including name of keymap *)
  31.     keyMap * : KeyMap;
  32.   END;
  33.  
  34.  
  35. (* the structure of keymap.resource *)
  36.   KeyMapResourcePtr * = UNTRACED POINTER TO KeyMapResource;
  37.   KeyMapResource * = STRUCT (node * : e.Node)
  38.     list * : e.List;        (* a list of KeyMapNodes *)
  39.   END;
  40.  
  41. CONST
  42.  
  43. (* Key Map Types *)
  44.   shift   * = 0;
  45.   alt     * = 1;
  46.   control * = 2;
  47.   downup  * = 3;
  48.  
  49.   dead    * = 5;          (* may be dead or modified by dead key: *)
  50.                           (*   use dead prefix bytes              *)
  51.   string  * = 6;
  52.  
  53.   nop     * = 7;
  54.  
  55.   noQual  * = SHORTSET{};
  56.   vanilla * = -SHORTSET{shift,alt,control};   (* note that SHIFT+ALT+CTRL is VANILLA *)
  57.  
  58. (* Dead Prefix Bytes *)
  59.   dpbMod          * = 0;
  60.   dpbDead         * = 3;
  61.  
  62.   dp2dIndexMask   * = 00FH;   (* mask for index for 1st of two dead keys *)
  63.   dp2dFacShift    * = 4;      (* shift for factor for 1st of two dead keys *)
  64.  
  65.  
  66. END KeyMap.
  67.  
  68.